<html>
<body>
Reports assignments to, <code>catch</code> block parameters.
<p>Changing a <code>catch</code> block parameter is very confusing and should be discouraged.</p>
<p>The quick-fix adds a declaration of a new variable.</p>
<p><b>Example:</b></p>
<pre><code>
  void processFile(String fileName) throws Exception {
    try {
      doProcessFile(fileName);
    } catch(Exception ex) {
      if (ex instanceof UncheckedIOException) {
        // Warning: catch block parameter reassigned
        ex = ((UncheckedIOException) ex).getCause();
      }
      throw ex;
    }
  }
</code></pre>
<p>After the quick-fix is applied:</p>
<pre><code>
  void processFile(String fileName) throws Exception {
    try {
      doProcessFile(fileName);
    } catch(Exception ex) {
      Exception unwrapped = ex;
      if (unwrapped instanceof UncheckedIOException) {
        unwrapped = ((UncheckedIOException)
          unwrapped).getCause();
      }
      throw unwrapped;
    }
  }
</code></pre>
<!-- tooltip end -->
</body>
</html>